﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows;
using System.Xml.Linq;
using System.IO;
using System.Windows.Resources;

namespace Seym
{
    public static class Yardimci
    {
        private static Brush[] Fircalar = new Brush[Properties.Settings.Default.RenkSayisi + 1];

        public static Brush TurArkaplani(byte tur, bool duzRenk = false)
        {
            Brush b;
            if (Properties.Settings.Default.SeciliTema == "varsayilan" || duzRenk)
                b = DuzRenk(tur);
            else
            {
                Uri u = new Uri(string.Format(@"pack://application:,,,/Seym;component/Resimler/temalar/{0}/{1}.png", Properties.Settings.Default.SeciliTema, tur), UriKind.Absolute);
                BitmapImage img = new BitmapImage();
                img.BeginInit();
                img.UriSource = u;
                try
                { img.EndInit(); }
                catch (IOException) { return DuzRenk(tur); } // yavaşlatıyor ama en azından hata vermiyor ne yapalım :S

                b = new ImageBrush(img);
                
            }
            return b;
        }

        private static SolidColorBrush DuzRenk(byte tur)
        {
            SolidColorBrush b = new SolidColorBrush();
            switch ((KutuTurleri)tur)
            {
                case KutuTurleri.Turuncu:
                    b.Color = (Color)ColorConverter.ConvertFromString("#FFFF8833");
                    break;
                case KutuTurleri.Yesil:
                    b.Color = (Color)ColorConverter.ConvertFromString("#FF267F00");
                    break;
                case KutuTurleri.AcikMavi:
                    b.Color = (Color)ColorConverter.ConvertFromString("#FF7FC9FF");
                    break;
                case KutuTurleri.Sari:
                    b.Color = (Color)ColorConverter.ConvertFromString("#FFF7CE00");
                    break;
                case KutuTurleri.Kirmizi:
                    b.Color = (Color)ColorConverter.ConvertFromString("#FFFF3F35");
                    break;
                case KutuTurleri.Mor:
                    b.Color = (Color)ColorConverter.ConvertFromString("#FF8056FF");
                    break;
                case KutuTurleri.Kahverengi:
                    b.Color = (Color)ColorConverter.ConvertFromString("#FFA02626");
                    break;
            }
            return b;
        }

        public static XElement SiralamaDosyasi
        {
            get
            {
                if (!System.IO.File.Exists(SiralamaDosyasiYolu))
                {
                    XDocument newDoc = new XDocument(
                        new XDeclaration("1.0", "utf-8", "yes"),
                        new XElement("siralamalar"));
                    newDoc.Save(SiralamaDosyasiYolu);
                }
                return XElement.Load(SiralamaDosyasiYolu);
            }
        }

        public static string SiralamaDosyasiYolu
        {
            get { return string.Format(@"{0}\siralamalar.xml", Klasor); }
        }

        public static string Klasor
        {
            get
            {
                string appData = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
                string klasor = Path.Combine(appData, "Seym");
                if (!Directory.Exists(klasor))
                    Directory.CreateDirectory(klasor);

                return klasor;
            }
        }
    }
}
